﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Windows.Forms;
using transportsystem.DTO;
using transportsystem.BUS;

namespace transportsystem
{
    public partial class frmDaiLy : Form
    {
        DataTable dt;
        bool hideControls = true;
        int iIndex = 0;
        bool addNew = false;
        public frmDaiLy()
        {
            InitializeComponent();
        }

        void HideAddNew(bool value)
        {
            if (value == true)
                cbbDaiLy.Visible = false;
            else
                cbbDaiLy.Visible = true;
        }
        public void SetDataGridTitle()
        {
            string[] a = new string[5] { "Mã đại lý", "Tên đại lý", "Địa chỉ", "Số điện thoại", "Khu vực" };

            for (int i = 0; i < a.Count(); i++)
                dgvDaiLy.Columns[i].HeaderText = a[i];
        }

        public void SetDataGridTitle2()
        {
            string[] a = new string[5] { "Mã đại lý", "Tên đại lý", "Địa chỉ", "Số điện thoại", "Khu vực" };

            for (int i = 0; i < a.Count(); i++)
                dgvDaiLy2.Columns[i].HeaderText = a[i];
        }
       

        private void chkHideControls_CheckedChanged(object sender, EventArgs e)
        {
            hideControls = !hideControls;
            HideAddNew(hideControls);
        
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            txtMaDaiLy.Text = "";
            txtTenDaiLy.Text = "";
            txtDiaChi.Text = "";
            txtSodt.Text = "";
            txtKhuVuc.Text = "";
           
            addNew = true;
            txtTenDaiLy.Focus();
        }
        bool CheckInfo()
        {
            if (txtTenDaiLy.Text == "" || txtDiaChi.Text == "" ||
                txtSodt.Text == "" || txtKhuVuc.Text == "" )
            {
                MessageBox.Show("Chưa điền đủ thông tin cần thiết!");
                return false;
            }
            return true;
        }
        public void SetValueToControls()
        {
            if (dt.Rows.Count > 0)
            {
                //txtID.Text = dt.Rows[iIndex]["manv"].ToString();
                txtMaDaiLy.Text = dt.Rows[iIndex]["madaily"].ToString();
                txtTenDaiLy.Text = dt.Rows[iIndex]["tendaily"].ToString();
                txtDiaChi.Text = dt.Rows[iIndex]["diachi"].ToString();
                txtSodt.Text = dt.Rows[iIndex]["sodt"].ToString();
                txtKhuVuc.Text = dt.Rows[iIndex]["khuvuc"].ToString();
                
            }
        }

        private void frmDaiLy_Load(object sender, EventArgs e)
        {
            HideAddNew(hideControls);

            dt = DaiLyBUS.getDaiLyListVu();
            if (dt != null && dt.Rows.Count > 0)
                dgvDaiLy.DataSource = dt;
            //if (dt != null && dt.Rows.Count > 0)
            //    dgvDaiLy2.DataSource = dt;
            SetDataGridTitle();
            //SetDataGridTitle2();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (CheckInfo() == true)
            {
                int id;
                if (addNew == true)
                {
                    id = 0;
                }
                else
                {
                    id = int.Parse(dt.Rows[iIndex]["madaily"].ToString());
                }
                string tendaily = txtTenDaiLy.Text;
                string diachi = txtDiaChi.Text;
                string sodt = txtSodt.Text;
                string khuvuc = txtKhuVuc.Text;
                SqlParameter[] sp = new SqlParameter[5];
                sp[0] = new SqlParameter("@madaily", id);
                sp[1] = new SqlParameter("@tendaily",tendaily);
                sp[2] = new SqlParameter("@diachi",diachi);
                sp[3] = new SqlParameter("@sodt", sodt);
                sp[4] = new SqlParameter("@khuvuc", khuvuc);
                int i = DaiLyBUS.getThaoTacDaiLy(sp);
                if (i == 1)
                {
                    MessageBox.Show("Cập nhật thành công");
                    frmDaiLy_Load(sender, e);
                }
                else
                    MessageBox.Show("Thất bại");
            }
        }

        private void btnRemove_Click(object sender, EventArgs e)
        {
            if (addNew == false)
            {
                if (MessageBox.Show("Xóa dòng dữ liệu này ?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                {
                    DaiLy dl = new DaiLy();
                    dl.Madaily = int.Parse(dt.Rows[iIndex]["madaily"].ToString());
                    bool i = DaiLyBUS.deleteDaiLy(dl);
                    string msg = "";
                    if (i == true)
                        msg = "Xóa thành công";
                    else
                        msg = "Xóa thất bại";
                    MessageBox.Show(msg);
                    frmDaiLy_Load(sender, e);
                }

            }
        }

        private void dgvDaiLy_CellDoubleClick_1(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            iIndex = e.RowIndex;
            SetValueToControls();
        }

        //phantom 
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (rdbPhanTom.Checked == true)
            {
                string mien = txtTimKiem.Text;
                SqlParameter[] sp = new SqlParameter[1];
                sp[0] = new SqlParameter("@khuvuc", mien);
                DataSet ds = DaiLyBUS.getDaiLy2(sp);
                DataTable dt1 = ds.Tables[0];
                DataTable dt2 = ds.Tables[1];
                if (dt1 != null && dt1.Rows.Count > 0)
                {
                    dgvDaiLy.DataSource = dt1;
                }
                if (dt2 != null && dt2.Rows.Count > 0)
                {
                    dgvDaiLy2.DataSource = dt2;
                }
                SetDataGridTitle();
                SetDataGridTitle2();
            }
            if (rdbDriTyRead.Checked == true)
            {
                string mien = txtTimKiem.Text;
                SqlParameter[] sp = new SqlParameter[1];
                sp[0] = new SqlParameter("@khuvuc", mien);
                DataSet ds = DaiLyBUS.getDaiLy2(sp);
                DataTable dt1 = ds.Tables[0];
                if (dt1 != null && dt1.Rows.Count > 0)
                {
                    dgvDaiLy.DataSource = dt1;
                }
                SetDataGridTitle();
            }
        }

        private void dgvDaiLy2_CellDoubleClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            iIndex = e.RowIndex;
            SetValueToControls2();
        }
        public void SetValueToControls2()
        {
            if (dt.Rows.Count > 0)
            {
                //txtID.Text = dt.Rows[iIndex]["manv"].ToString();
                txtMaDaiLy2.Text = dt.Rows[iIndex]["madaily"].ToString();
                txtTenDaiLy2.Text = dt.Rows[iIndex]["tendaily"].ToString();
                txtDiaChi2.Text = dt.Rows[iIndex]["diachi"].ToString();
                txtSodt2.Text = dt.Rows[iIndex]["sodt"].ToString();
                txtKhuVuc2.Text = dt.Rows[iIndex]["khuvuc"].ToString();

            }
        }

        private void bntCapNhatDaiLy_Click(object sender, EventArgs e)
        {
            if (CheckInfo() == true)
            {
                int id = int.Parse(txtMaDaiLy.Text);
                string tendaily = txtTenDaiLy.Text;
                string diachi = txtDiaChi.Text;
                string sodt = txtSodt.Text;
                string khuvuc = txtKhuVuc.Text;
                int id2 = int.Parse(txtMaDaiLy2.Text);
                string tendaily2 = txtTenDaiLy2.Text;
                string diachi2 = txtDiaChi2.Text;
                string sodt2 = txtSodt2.Text;
                string khuvuc2 = txtKhuVuc2.Text;
                SqlParameter[] sp = new SqlParameter[10];
                sp[0] = new SqlParameter("@madaily", id);
                sp[1] = new SqlParameter("@tendaily", tendaily);
                sp[2] = new SqlParameter("@diachi", diachi);
                sp[3] = new SqlParameter("@sodt", sodt);
                sp[4] = new SqlParameter("@khuvuc", khuvuc);
                sp[5] = new SqlParameter("@madaily2", id2);
                sp[6] = new SqlParameter("@tendaily2", tendaily2);
                sp[7] = new SqlParameter("@diachi2", diachi2);
                sp[8] = new SqlParameter("@sodt2", sodt2);
                sp[9] = new SqlParameter("@khuvuc2", khuvuc2);
                int i = DaiLyBUS.getCapNhatDaiLy1(sp);
                if (i == 1)
                {
                    MessageBox.Show("Cập nhật thành công");
                    frmDaiLy_Load(sender, e);
                }
                else
                {
                    MessageBox.Show("Thất bại");
                    frmDaiLy_Load(sender, e);
                }
            }
        }

        private void btnCapNhatDaiLy2_Click(object sender, EventArgs e)
        {
            if (CheckInfo() == true)
            {
                int id = int.Parse(txtMaDaiLy.Text);
                string tendaily = txtTenDaiLy.Text;
                string diachi = txtDiaChi.Text;
                string sodt = txtSodt.Text;
                string khuvuc = txtKhuVuc.Text;
                int id2 = int.Parse(txtMaDaiLy2.Text);
                string tendaily2 = txtTenDaiLy2.Text;
                string diachi2 = txtDiaChi2.Text;
                string sodt2 = txtSodt2.Text;
                string khuvuc2 = txtKhuVuc2.Text;
                SqlParameter[] sp = new SqlParameter[10];
                sp[0] = new SqlParameter("@madaily", id);
                sp[1] = new SqlParameter("@tendaily", tendaily);
                sp[2] = new SqlParameter("@diachi", diachi);
                sp[3] = new SqlParameter("@sodt", sodt);
                sp[4] = new SqlParameter("@khuvuc", khuvuc);
                sp[5] = new SqlParameter("@madaily2", id2);
                sp[6] = new SqlParameter("@tendaily2", tendaily2);
                sp[7] = new SqlParameter("@diachi2", diachi2);
                sp[8] = new SqlParameter("@sodt2", sodt2);
                sp[9] = new SqlParameter("@khuvuc2", khuvuc2);
                int i = DaiLyBUS.getCapNhatDaiLy2(sp);
                if (i == 1)
                {
                    MessageBox.Show("Cập nhật thành công");
                    frmDaiLy_Load(sender, e);
                }
                else
                {
                    MessageBox.Show("Thất bại");
                    frmDaiLy_Load(sender, e);
                }
            }
        }

    }
}
